package com.spzx.product.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.spzx.product.domain.ProductUnit;

import java.util.List;

/**
 * 商品单位 Service 接口
 *
 * @author Taeyang
 * @since 2025-04-17
 */
public interface IProductUnitService extends IService<ProductUnit> {

    /**
     * 查询商品单位分页列表
     *
     * @param pageParam   分页条件
     * @param productUnit 查询对象
     * @return 分页查询结果
     */
    IPage<ProductUnit> selectProductUnitPage(Page<ProductUnit> pageParam, ProductUnit productUnit);

    /**
     * 获取商品单位详细信息
     *
     * @param id 商品单位id
     * @return 商品单位
     */
    ProductUnit selectProductUnitById(Long id);

    /**
     * 新增商品单位
     *
     * @param productUnit 商品单位
     * @return 结果
     */
    int insertProductUnit(ProductUnit productUnit);

    /**
     * 修改商品单位
     *
     * @param productUnit 商品单位
     * @return 结果
     */
    int updateProductUnit(ProductUnit productUnit);

    /**
     * 批量删除商品单位
     *
     * @param ids 需要删除的商品单位主键集合
     * @return 结果
     */
    int deleteProductUnitByIds(Long... ids);

    /**
     * 获取全部商品单位数据
     *
     * @return 结果
     */
    List<ProductUnit> selectProductUnitAll();
}
